Technical Q&A QA1153
Deadlocks When Switching Between Windows


Q: É}ÉEÉXÇégǡǃ 2 ǬÇà JFrame ä‘ÇêÿÇËë÷ǶÇÈÇΔÅAJava ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÇΔǴǫǴìÆÇ©Ç»Ç≠Ç»ÇËÇ‹Ç∑ÅBâΩÇ™ñ‚ëËÇ»ÇÃÇ≈ǵÇÂǧǩÅB

A: DZÇÍÇÕä˘ímÇÃñ‚ëËÇ≈ÅAåªçsÇà Java 1.3.1 ÇÃé¿ëïÇ≈ÇÕÅA2 ǬÇÃÉEÉBÉìÉhÉEä‘Ç≈ÉNÉäÉbÉNÇ∑ÇÈÇΔÉnÉìÉOÇ∑ÇÈDZÇΔǙdžÇËÇ‹Ç∑ÅBDZÇÃñ‚ëËÇÕÅAÉcÅ[ÉãÉ`ÉbÉvÇ™ìoò^Ç≥ÇÍǃǢÇÈ JFrame ÇÉAÉNÉeÉBÉuDžǵÇΩÇΔÇ´ÇΔÅAàÍï˚Çà JFrame Ç…êÿÇËë÷ǶÇΩå„ÅAÇ∑ÇÆÇ… JMenu ÇäJÇ¢ÇΩÇΔÇ´Ç…å©ÇÁÇÍNjǵÇΩÅB

DZÇÃñ‚ëËÇÕÅAà»â∫Çé¿çsÇ∑ÇÈDZÇΔÇ…ÇÊǡǃÅAî‰ärìIä»íPÇ…âÒîÇ≈Ç´Ç‹Ç∑ÅB

  1. ñ‚ëËÇ™å©ÇÁÇÍÇΩÉtÉåÅ[ÉÄÇ… WindowListener Çí«â¡ÇµÇ‹Ç∑ÅB
  2. ÉAÉNÉeÉBÉuDžǻǡÇΩÉtÉåÅ[ÉÄÇ≈ toFront() ÇåƒÇ—èoÇ∑ÇÊǧDžÉäÉXÉiÅ[Çà windowActivated() ÉÅÉ\ÉbÉhÇé¿ëïǵÅADZÇÃÉtÉåÅ[ÉÄÇ™ëIëÇ≥ÇÍÇΩÇΔÇ´Ç…ÅAâΩÇÁÇ©ÇÃÉAÉNÉVÉáÉìÇ™é¿çsÇ≥ÇÍÇÈëOÇ…ÅAämé¿Ç…ÉtÉHÅ[ÉJÉXÇìæÇÈÇÊǧDžǵNjÇ∑ÅB
ä»íPDžǵǃǮÇ≠ÇΩÇflÇ…ÅAñ‚ëËÇÃdžÇÈÇ∑Ç◊ǃÇÃÉtÉåÅ[ÉÄÇ≈íPàÍÇà WindowListener ÇégǧÇΔÇÊÇ¢Ç≈ǵÇÂǧÅBDZÇÍÇÕÇÊÇ≠džÇÈñ‚ëËÇ≈ÇÕǻǢÇÃÇ≈ÅAàÍî ìIÇ»ÉvÉçÉOÉâÉ~ÉìÉOéËñ@ÇΔǵǃÇ≈ÇÕÇ»Ç≠ÅAñ‚ëËÇ™î≠ê∂ǵǃǢÇÈèÍèäÇ…ÇæÇØìKópÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB


[2002 îN 7 åé 12 ì˙]